home *** CD-ROM | disk | FTP | other *** search
- /**********************************************************************
- * This file contains the functions which initialize the toolbox
- * and check to see if System 7 is present, and loads the error
- * strings into memory.
- **********************************************************************/
-
- #include "QDOffscreen.h"
- #include "Creator Changer.h"
- #include "Creator Changer.init.h"
- #include "AppleEvents.h"
- #include "Folders.h"
-
-
- /**********************************************************************
- * Function Init_Toolbox(), this function initializes the Macintosh
- * toolbox so that all of the parts of the program will work.
- **********************************************************************/
-
- void Init_Toolbox(void)
- {
- Size the_size;
-
- MaxApplZone();
- MoreMasters();
- MoreMasters();
- MoreMasters();
-
- InitGraf(&qd.thePort);
- InitFonts();
- FlushEvents(everyEvent, 0);
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(NIL_PTR);
- InitCursor();
-
- the_size=sizeof(DialogRecord);
-
- Chng.storage=NewPtr(the_size);
- Pref.storage=NewPtr(the_size);
- About.storage=NewPtr(the_size);
-
- Chng.menu_id=PREF_TYPES_ID;
- Chng.pref_type=PREF_PT;
- Chng.dlog_id=CHNG_TYPE_DLOG_ID;
- Chng.num_items=0;
-
- Edit.menu_id=PREF_TYPES_ID;
- Edit.pref_type=PREF_PT;
- Edit.num_items=0;
-
- Auto.menu_id=AUTO_CHANGE_ID;
- Auto.pref_type=PREF_AC;
- Auto.num_items=0;
-
- About.dlog_id=ABOUT_DLOG_ID;
-
- Pref.menu_id=NIL_PTR;
- Pref.dlog_id=PREF_DLOG_ID;
- Pref.num_items=PREF_MAX_ITEMS;
-
- All_Done=FALSE;
- Maintain_Menu_Items(FrontWindow());
- In_Background=FALSE;
- Sleep_Ticks=10;
-
- }
-
-
-
- /**********************************************************************
- * Function Get_Strings(), this function gets the strings
- * that are stored in the resources.
- **********************************************************************/
-
- void Get_Strings(void)
- {
-
- GetIndString( Types_Error_1, ERROR_STRING_LIST, TYPES_ERROR_1 );
- GetIndString( Types_Error_2, ERROR_STRING_LIST, TYPES_ERROR_2 );
- GetIndString( Descr_Error, ERROR_STRING_LIST, DESC_ERROR );
- GetIndString( Bad_Item_Error, ERROR_STRING_LIST, BAD_ITEM_ERROR );
- GetIndString( Bad_CF_Type_1, ERROR_STRING_LIST, BAD_CF_TYPE_1 );
- GetIndString( Bad_CF_Type_2, ERROR_STRING_LIST, BAD_CF_TYPE_2 );
- GetIndString( Bad_CF_Type_3, ERROR_STRING_LIST, BAD_CF_TYPE_3 );
- GetIndString( Bad_CF_Type_4, ERROR_STRING_LIST, BAD_CF_TYPE_4 );
- GetIndString( Multi_File_1, ERROR_STRING_LIST, MULTI_FILE_1 );
- GetIndString( Multi_File_2, ERROR_STRING_LIST, MULTI_FILE_2 );
- GetIndString( Multi_File_3, ERROR_STRING_LIST, MULTI_FILE_3 );
-
- GetIndString( Pref_File_Name, MISC_STRING_LIST, PREF_FILE_NAME );
-
- }
-
-
-
- /**********************************************************************
- * Function Check_Sys_Type(), this function checks to see if System
- * seven or later is present, if it isn't then the program quits.
- **********************************************************************/
-
- void Check_Sys_Type(void)
- {
-
- short sys_7=0x0700;
- short vers_requsted=1;
- SysEnvRec the_environ;
-
- SysEnvirons(vers_requsted, &the_environ);
-
- if(the_environ.systemVersion>=sys_7) All_Done=FALSE;
- else
- {
- GetIndString(Sys7_Error_1, ERROR_STRING_LIST, SYS7_ERROR_1);
- GetIndString(Sys7_Error_2, ERROR_STRING_LIST, SYS7_ERROR_2);
- Do_Error(Sys7_Error_1, EMPTY_STR, Sys7_Error_2, EMPTY_STR);
- ExitToShell();
- }
-
- }
-
-
- /**********************************************************************
- * Function Check_Drag_Manager(), this function checks to see if the
- * computer has the drag manager.
- **********************************************************************/
-
- void Check_Drag_Manager(void)
- {
-
- long gestaltResponse;
-
- if( (Gestalt(gestaltDragMgrAttr, &gestaltResponse)!=noErr) || (!(gestaltResponse&(1<<gestaltDragMgrPresent))) )
- Has_Drag_Mgr=FALSE;
- else Has_Drag_Mgr=TRUE;
-
- }
-
-
- /**********************************************************************
- * Function Open_Preferences(), this function opens the preference
- * file that is used to set creator types.
- **********************************************************************/
-
- void Open_Preferences(void)
- {
-
- Handle pref_string, TMPL_handle[3], global_vals;
- OSErr file_Err;
- short i;
- pref_types **pt_handle[4];
- auto_chng **ac_handle[3];
-
- CreatorChangerApp=CurResFile();
-
- file_Err=FindFolder(kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder, &Pref_VRef, &Pref_Dir_ID);
- if(file_Err==noErr) file_Err=FSMakeFSSpec(Pref_VRef, Pref_Dir_ID, Pref_File_Name, &Pref_Spec);
- if(file_Err==fnfErr)
- {
- FSpCreateResFile(&Pref_Spec, 'CPrf', kPreferencesFolderType, -1);
- CreatorChangerPref=FSpOpenResFile(&Pref_Spec, 3);
-
- pref_string=(Handle)GetResource('STR ', -16397);
- DetachResource(pref_string);
- HLock(pref_string);
-
- for(i=0;i<=2;i++)
- {
- TMPL_handle[i]=GetResource('TMPL', Strt_Rsrc+i);
- DetachResource(TMPL_handle[i]);
- HLock(TMPL_handle[i]);
- }
-
- for(i=0;i<=3;i++)
- {
- pt_handle[i]=(pref_types **)GetResource('pref', Strt_Rsrc+i);
- DetachResource((Handle)pt_handle[i]);
- HLock((Handle)pt_handle[i]);
- }
-
- for(i=4;i<=6;i++)
- {
- ac_handle[i-4]=(auto_chng **)GetResource('pref', Strt_Rsrc+i);
- DetachResource((Handle)ac_handle[i-4]);
- HLock((Handle)ac_handle[i-4]);
- }
-
- global_vals=GetResource('pref', Strt_Rsrc+7);
- DetachResource(global_vals);
- HLock(global_vals);
-
- UseResFile(CreatorChangerPref);
- AddResource(pref_string, 'STR ', -16397, NIL_PTR);
- AddResource(global_vals, PREF_GL, 128, NIL_PTR);
-
- AddResource(TMPL_handle[0], 'TMPL', 128, "\pCCpt");
- AddResource(TMPL_handle[1], 'TMPL', 129, "\pCCgl");
- AddResource(TMPL_handle[2], 'TMPL', 130, "\pCCac");
-
- for(i=0;i<=3;i++) AddResource((Handle)pt_handle[i], PREF_PT, Strt_Rsrc+i, (**pt_handle[i]).Description);
- for(i=0;i<=2;i++) AddResource((Handle)ac_handle[i], PREF_AC, Strt_Rsrc+i, (**ac_handle[i]).Name);
- UpdateResFile(CreatorChangerPref);
- UseResFile(CreatorChangerApp);
-
- HUnlock(pref_string);
- ReleaseResource(pref_string);
-
- HUnlock(global_vals);
- ReleaseResource(global_vals);
-
- for(i=0;i<=2;i++)
- {
- HUnlock(TMPL_handle[i]);
- ReleaseResource(TMPL_handle[i]);
- }
- for(i=0;i<=3;i++)
- {
- HUnlock((Handle)pt_handle[i]);
- ReleaseResource((Handle)pt_handle[i]);
- }
- for(i=0;i<=2;i++)
- {
- HUnlock((Handle)ac_handle[i]);
- ReleaseResource((Handle)ac_handle[i]);
- }
-
- UseResFile(CreatorChangerPref);
- Chng.num_items=Edit.num_items=CountResources(PREF_PT);
- Auto.num_items=CountResources(PREF_AC);
- Global=(global_prefs **)GetResource(PREF_GL, 128);
- HLock((Handle)Global);
- UseResFile(CreatorChangerApp);
-
- }
- else
- {
- CreatorChangerPref=FSpOpenResFile(&Pref_Spec, 3);
-
- UseResFile(CreatorChangerPref);
- Chng.num_items=Edit.num_items=CountResources(PREF_PT);
- Auto.num_items=CountResources(PREF_AC);
- Global=(global_prefs **)GetResource(PREF_GL, 128);
- HLock((Handle)Global);
- UseResFile(CreatorChangerApp);
- }
-
- }
-
-
-
- /**********************************************************************
- * Function Set_Up_Menu_Bar(), this function displays the menu bar
- * for the program.
- **********************************************************************/
-
- void Set_Up_Menu_Bar(void)
- {
-
- Handle menu_bar;
-
- menu_bar=GetNewMBar(MAIN_MENU_BAR_ID);
- SetMenuBar(menu_bar);
- Apple_Menu=GetMenuHandle(APPLE_MENU_ID);
- File_Menu=GetMenuHandle(FILE_MENU_ID);
- Edit_Menu=GetMenuHandle(EDIT_MENU_ID);
- AppendResMenu(Apple_Menu, 'DRVR');
- DrawMenuBar();
-
- }
-
-
-
- /**********************************************************************
- * Function Do_Error(), this function does the error routine.
- **********************************************************************/
-
- void Do_Error(StringPtr s1, StringPtr s2, StringPtr s3, StringPtr s4)
- {
-
- ParamText(s1, s2, s3, s4);
- Alert(ERROR_ALERT_ID, NIL_PTR);
-
- }
-